package com.guocheng.modules.login.utils;

import com.guocheng.modules.login.model.dto.MenuDTO;
import com.guocheng.modules.login.model.po.Menu;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class MenuUtils {

    /**
     * 将menu转换为树形菜单
     * @param menus
     * @return
     */
    public static List<MenuDTO> menuToChildByParent(List<MenuDTO> menus){
        List<MenuDTO> parent = new ArrayList<>();
        HashMap<Integer,List<MenuDTO>> map = new HashMap<>();
        for (int i = 0; i < menus.size(); i++) {
            MenuDTO menuDTO = menus.get(i);
            if(menuDTO.getParentId()==0){
                parent.add(menuDTO);
            }else{
                List<MenuDTO> childs = map.get(menuDTO.getParentId());
                if(childs!=null){
                    childs.add(menuDTO);
                }else{
                    List<MenuDTO> child = new ArrayList<>();
                    child.add(menuDTO);
                    map.put(menuDTO.getParentId(),child);
                }
            }
        }
        for (int i = 0; i < parent.size(); i++) {
            MenuDTO menuDTO = parent.get(i);
            List<MenuDTO> child = map.get(menuDTO.getId());
            menuDTO.setChild(child);
        }
        return parent;
    }
}
